import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 沈明月
 * Date: 2022-11-07
 * Time: 13:54
 */
public class TestFour {
//冒泡排序:给定一个整型数组, 实现冒泡排序(升序排序)
    public static int [] bubbleSort(int[] array){
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j]>array[j+1]){
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            }
        }
        return array;
    }
//简化版：（好好体味，为啥可以这样做）
    //进一步进行了优化，当数据在排序过程当中有序了，会在某一趟排序后，发现数据没有交换。
    //所以，每一趟排序完，都去检查是否发生了交换，没有交换证明数据已近有序，不需要再进行剩余趟数的排序了。
    public static void bubbleSort1(int[] array) {
        boolean flg = false;
        //1、确定一个趟数
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1-i; j++) {
                if(array[j] > array[j+1]) {
                    int tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                    flg = true;
                }
            }
            if(flg == false) {
                //没有交换
                break;
            }
        }
    }
    public static void main1(String[] args) {
        int [] array = new int [] {13,16,1,54,87,91,32,12};
        //进行冒泡排序：
        bubbleSort(array);
        System.out.println(Arrays.toString(array));
    }
}
